package j21;

import cn.hutool.core.thread.ThreadUtil;

import java.util.Iterator;
import java.util.concurrent.CopyOnWriteArrayList;

/**
 * @author chengshuai
 * @date 2021/4/9 22:32
 */
public class CopyOnWriteArrayListDemo {

    static CopyOnWriteArrayList<String> list = new CopyOnWriteArrayList<>();

    static {
        list.add("1");
        list.add("2");
        list.add("3");
    }


    /**
     * 删除
     * @param args
     */
    public static void main(String[] args) {

        new Thread(() -> {
            ThreadUtil.sleep(5);
//            list.remove("3");-+
            list.add("4");
            System.out.println(list);
        }, "t1").start();

        new Thread(() -> {
//            for (String s : list) {
//                System.out.println("数量===="+list.size());
//                ThreadUtil.sleep(10);
//                System.out.println(s);
//            }

            Iterator<String> iterator = list.iterator();
            while (iterator.hasNext()) {
                ThreadUtil.sleep(10);
                System.out.println(iterator.next());
            }
        }, "t3").start();

    }


//    /**
//     * 添加
//     * @param args
//     */
//    public static void main(String[] args) {
//        new Thread(() -> {
//            ThreadUtil.sleep(5);
//            list.add("4");
//            System.out.println(list);
//        }, "t1").start();
//
//        new Thread(() -> {
//            for (String s : list) {
//                System.out.println("数量===="+list.size());
//                ThreadUtil.sleep(10);
//                System.out.println(s);
//            }
//        }, "t3").start();
//    }
}
